AWS CodePipeline マネージドポリシーの AWSCodePipelineFullAccess が非推奨となるので影響範囲を確認する方法
困っていた内容
Personal Health Dashboard (PHD) に 「 AWS CodePipeline マネージドポリシーの AWSCodePipelineFullAccess が非推奨となり AWSCodePipeline_FullAccess に置き換わります。」 とメッセージがありました。どんな対応が必要でしょうか?
CodePipeline operational notification
AWS CodePipeline is deprecating its managed policy “AWSCodePipelineFullAccess” on September 2, 2020. The managed policy will be replaced with a new policy “AWSCodePipeline_FullAccess” which has a reduced set of permissions. This change will not impact existing pipelines, however you will no longer be able to attach “AWSCodePipelineFullAccess” to new IAM roles or see it in the IAM console.
For more information about scoping down policies, please see [1].
Should you have any questions or concerns, the AWS Support Team is available on the community forums and via AWS Premium Support [2]
[1] https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-deprecated.html [2] http://aws.amazon.com/support
非推奨となる日付に誤りがあったようで、関連のメッセージが2件表示されています。
CodePipeline operational notification
Previously we communicated that AWS CodePipeline is deprecating its managed policy AWSCodePipelineFullAccess. We have identified that our communication included an incorrect deprecation date; the correct deprecation date of September 7, 2020 is reflected below:
AWS CodePipeline is deprecating its managed policy AWSCodePipelineFullAccess on September 7, 2020. The managed policy will be replaced with a new policy AWSCodePipeline_FullAccess which has a reduced set of permissions. This change will not impact existing pipelines, however you will no longer be able to attach AWSCodePipelineFullAccess to new IAM roles or see it in the IAM console.
For more information about scoping down policies, please refer to Deprecated AWS Managed Policies [1].
Should you have any questions or concerns, the AWS Support Team is available on the community forums [2] and via AWS Premium Support [3]
[1] https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-deprecated.html [2] https://forums.aws.amazon.com/index.jspa [3] http://aws.amazon.com/support
どうすればいいの?
まずは、該当の IAM ポリシーが非推奨になることで、どのような影響が発生するかを確認します。
ドキュメント [1] に記載がある通り、非推奨となった場合でも、現在アタッチ・利用している ポリシーはそのまま利用が可能です。 ただし、新規利用やデタッチすると利用は不可となります。
非推奨のポリシーには以下のような特徴があります。
● ポリシーは、現在アタッチされているすべてのユーザー、グループ、およびロールの処理を継続します。中断される処理はありません。
● ポリシーを新しいユーザー、グループ、またはロールにアタッチすることはできません。現在のエンティティからポリシーをデタッチした場合、再アタッチすることはできません。
● 現在のすべてのエンティティからポリシーをデタッチしたら、そのポリシーは表示されなくなり、いかなる方法でも使用不能となります。
つまり、即時に利用不可となるわけではないということです。 ただし、非推奨となる理由として幅広い権限が付与されているケースへの是正が多く、使えるならいいかと継続して利用し続けるのはリスクをともなうため、計画的に対応を進めることを推奨いたします。
該当ポリシーの利用状況を調べる方法
IAM
> ポリシー
を選択
今回、アンダーバーなし( AWSCodePipelineFullAccess )からあり( AWSCodePipeline_FullAccess )の名称に変更されているため、非常に似ているため、新しいポリシーを調べてしまわないように注意が必要です。
「次として使用」 に利用されている件数が表示されています。
AWSCodePipelineFullAccess
> ポリシーの使用状況
を選択
blog-codepipeline というロールで利用されていることがわかります。
アクセスアドバイザー
を選択
今回は、この記事のために作成したロールのため、実績は記録されておりませんが、本来であれば、どのサービスに対してアクセスしたかが表示されているはずです。(データ保管期間内であれば)
より詳細を確認するためには、最終アクセス日やアカウントにおける設定により以下の方法が取れます。
- 最終アクセス日が 90日以内: CloudTrail で確認
- 最終アクセス日が 90日以上: (設定されていれば) CloudTrail を出力した S3 に対して Athena で確認
※ CloudTrail では全ての API コールが記録されているわけではないことにご留意ください。 [2]
新しいマネージドポリシーとの差分
今回、置き換られる ポリシー間では一部権限に変更があります。それぞれでのポリシーのアクセス権限の差分を比較します。 コンソールの JSON などから diff で確認を行うと以下の変更があるようです。ここのアクションについてはコンソール等で、ご確認ください。
- CloudTrail, S3 はリソースが限定
- Codecommit, Codedeploy, Devicefarm の一部アクションが削除
対応
ドキュメント [1] でも記載があるように、新しいポリシーへの切り替えと、もし上記の差分により現在実施している処理に影響が生じる可能性がある場合は、独自にポリシーをアタッチする必要があります。
代替ポリシーへのアタッチと、非推奨のポリシーからのデタッチをただちに計画することをお勧めします。非推奨のポリシーを使用し続けことはリスクを伴い、代替ポリシーへの切り替え以外にはリスク低減の方法はありません。